package com.yzy.domain.entity.system;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.baomidou.mybatisplus.core.enums.IEnum;
import com.fasterxml.jackson.annotation.JsonValue;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;

@AllArgsConstructor
@Getter
public enum PermissionEnum implements IEnum<String> {

    // 收验货

    /**
     * loadometerEquipment-收验货客户端验证秘钥
     */
    @ApiModelProperty("loadometerEquipment-收验货客户端验证秘钥")
    LOADOMETER_EQUIPMENT_VIEW("LOADOMETER_EQUIPMENT_VIEW", "收验货客户端验证秘钥查看权限"),
    LOADOMETER_EQUIPMENT_EDIT("LOADOMETER_EQUIPMENT_EDIT", "客户端验证秘钥编辑权限"),

    /**
     * loginControl - 登录界面控制
     */
    @ApiModelProperty("loginControl - 登录界面控制")
    LOGIN_CONTROL_VIEW("LOGIN_CONTROL_VIEW", "登录界面控制查看"),
    LOGIN_CONTROL_EDIT("LOGIN_CONTROL_EDIT", "登录界面控制编辑"),

    // 智慧工地

    /**
     * moduleSelection - 智慧工地模块选择
     */
    @ApiModelProperty(" moduleSelection - 智慧工地模块选择")
    MODULE_SELECTION_VIEW("MODULE_SELECTION_VIEW", "智慧工地模块选择查看"),
    MODULE_SELECTION_EDIT("MODULE_SELECTION_EDIT", "智慧工地模块选择编辑"),

    /**
     * buildInfo - 上海住建配置信息
     */
    @ApiModelProperty("buildInfo - 上海住建配置信息")
    BUILD_INFO_VIEW("BUILD_INFO_VIEW", "上海住建配置信息查看"),
    BUILD_INFO_EDIT("BUILD_INFO_EDIT", "上海住建配置信息编辑"),

    /**
     * RealnameSystem - 南京实名制
     */
    @ApiModelProperty("RealnameSystem - 南京实名制")
    REALNAME_SYSTEM_VIEW("REALNAME_SYSTEM_VIEW", "南京实名制查看"),
    REALNAME_SYSTEM_EDIT("REALNAME_SYSTEM_EDIT", "南京实名制编辑"),

    // 硬件设备

    /**
     * authorizationCode - 物联网终端管理
     */
    @ApiModelProperty("authorizationCode - 物联网终端管理")
    AUTHORIZATION_CODE_VIEW("AUTHORIZATION_CODE_VIEW", "物联网终端管理查看"),
    AUTHORIZATION_CODE_EDIT("AUTHORIZATION_CODE_EDIT", "物联网终端管理编辑"),

    /**
     * FaceUpgrade - 人脸机升级
     */
    @ApiModelProperty("FaceUpgrade - 人脸机升级")
    FACE_UPGRADE_VIEW("FACE_UPGRADE_VIEW", "人脸机升级查看"),
    FACE_UPGRADE_EDIT("FACE_UPGRADE_EDIT", "人脸机升级编辑"),

    /**
     * versionmanagement - 设备版本管理
     */
    @ApiModelProperty("versionmanagement - 设备版本管理")
    VERSION_MANAGEMENT_VIEW("VERSION_MANAGEMENT_VIEW", "设备版本管理查看"),
    VERSION_MANAGEMENT_EDIT("VERSION_MANAGEMENT_EDIT", "设备版本管理编辑"),

    /**
     * Devicelog - 设备日志
     */
    @ApiModelProperty("Devicelog - 设备日志")
    DEVICE_LOG_VIEW("DEVICE_LOG_VIEW", "设备日志查看"),
    DEVICE_LOG_EDIT("DEVICE_LOG_EDIT", "设备日志编辑");

    @EnumValue
    @JsonValue
    private String code;

    private String name;

    @Override
    public String getValue() {
        return this.getCode();
    }

}
